package cn.tedu.tickets;
/*需求:设计多线程编程模型,4个窗口共计售票100张
* 本方案使用多线程的实现方案1:extends Thread*/
public class TestThtead {
    public static void main(String[] args) {
        TicketThread t1 = new TicketThread();
        TicketThread t2 = new TicketThread();
        TicketThread t3 = new TicketThread();
        TicketThread t4 = new TicketThread();
        t1.start();
        t2.start();
        t3.start();
        t4.start();
    }
}
class TicketThread extends Thread{
    /*问题:4个线程对象共计售票400张,原因是创建了4个不同的线程对象
    * 每个对象都把票数tickets看作自己独有的成员变量,互不影响
    * 解决:将票数设置为静态,让全局所有对象共享*/
    static int tickets = 100;
    @Override
    public void run() {
        while (true){
            try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //打印当前正在售票的线程名,并且每次卖票 票数-1
            System.out.println(getName()+"="+tickets--);
            //如果没有票了,结束循环 如果if后大括号里只有一句话,大括号可以省略
            if(tickets <= 0)break;//注意,死循环一定要设置出口
        }
    }
}
